// --------------------------------------------------------------------------------------------
// Version: MPL 1.1/GPL 2.0/LGPL 2.1
// 
// The contents of this file are subject to the Mozilla Public License Version
// 1.1 (the "License"); you may not use this file except in compliance with
// the License. You may obtain a copy of the License at
// http://www.mozilla.org/MPL/
// 
// Software distributed under the License is distributed on an "AS IS" basis,
// WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
// for the specific language governing rights and limitations under the
// License.
// 
// <remarks>
// Generated by IDLImporter from file nsIAndroidBridge.idl
// 
// You should use these interfaces when you access the COM objects defined in the mentioned
// IDL/IDH file.
// </remarks>
// --------------------------------------------------------------------------------------------
namespace Gecko
{
	using System;
	using System.Runtime.InteropServices;
	using System.Runtime.InteropServices.ComTypes;
	using System.Runtime.CompilerServices;
	
	
	/// <summary>
    ///This Source Code Form is subject to the terms of the Mozilla Public
    /// License, v. 2.0. If a copy of the MPL was not distributed with this
    /// file, You can obtain one at http://mozilla.org/MPL/2.0/. </summary>
	[ComImport()]
	[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
	[Guid("0843f3c1-043e-4c64-9d8c-091370548c05")]
	public interface nsIBrowserTab
	{
		
		/// <summary>
        ///This Source Code Form is subject to the terms of the Mozilla Public
        /// License, v. 2.0. If a copy of the MPL was not distributed with this
        /// file, You can obtain one at http://mozilla.org/MPL/2.0/. </summary>
		[return: MarshalAs(UnmanagedType.Interface)]
		[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
		nsIDOMWindow GetWindowAttribute();
		
		[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
		float GetScaleAttribute();
	}
	
	/// <summary>nsIUITelemetryObserver </summary>
	[ComImport()]
	[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
	[Guid("08426a73-e70b-4680-9282-630932e2b2bb")]
	public interface nsIUITelemetryObserver
	{
		
		/// <summary>Member StartSession </summary>
		/// <param name='name'> </param>
		/// <param name='timestamp'> </param>
		[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
		void StartSession([MarshalAs(UnmanagedType.CustomMarshaler, MarshalType = "Gecko.CustomMarshalers.WStringMarshaler")] string name, uint timestamp);
		
		/// <summary>Member StopSession </summary>
		/// <param name='name'> </param>
		/// <param name='reason'> </param>
		/// <param name='timestamp'> </param>
		[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
		void StopSession([MarshalAs(UnmanagedType.CustomMarshaler, MarshalType = "Gecko.CustomMarshalers.WStringMarshaler")] string name, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalType = "Gecko.CustomMarshalers.WStringMarshaler")] string reason, uint timestamp);
		
		/// <summary>Member AddEvent </summary>
		/// <param name='action'> </param>
		/// <param name='method'> </param>
		/// <param name='timestamp'> </param>
		/// <param name='extras'> </param>
		[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
		void AddEvent([MarshalAs(UnmanagedType.CustomMarshaler, MarshalType = "Gecko.CustomMarshalers.WStringMarshaler")] string action, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalType = "Gecko.CustomMarshalers.WStringMarshaler")] string method, uint timestamp, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalType = "Gecko.CustomMarshalers.WStringMarshaler")] string extras);
	}
	
	/// <summary>nsIAndroidBrowserApp </summary>
	[ComImport()]
	[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
	[Guid("78ec5811-78ee-4239-a554-3303f823dbbc")]
	public interface nsIAndroidBrowserApp
	{
		
		/// <summary>Member GetSelectedTabAttribute </summary>
		/// <returns>A nsIBrowserTab</returns>
		[return: MarshalAs(UnmanagedType.Interface)]
		[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
		nsIBrowserTab GetSelectedTabAttribute();
		
		/// <summary>Member GetBrowserTab </summary>
		/// <param name='tabId'> </param>
		/// <returns>A nsIBrowserTab</returns>
		[return: MarshalAs(UnmanagedType.Interface)]
		[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
		nsIBrowserTab GetBrowserTab(int tabId);
		
		/// <summary>Member GetPreferences </summary>
		/// <param name='requestId'> </param>
		/// <param name='prefNames'> </param>
		/// <param name='count'> </param>
		[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
		void GetPreferences(int requestId, [MarshalAs(UnmanagedType.LPArray, SizeParamIndex=2)] System.IntPtr[] prefNames, uint count);
		
		/// <summary>Member ObservePreferences </summary>
		/// <param name='requestId'> </param>
		/// <param name='prefNames'> </param>
		/// <param name='count'> </param>
		[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
		void ObservePreferences(int requestId, [MarshalAs(UnmanagedType.LPArray, SizeParamIndex=2)] System.IntPtr[] prefNames, uint count);
		
		/// <summary>Member RemovePreferenceObservers </summary>
		/// <param name='requestId'> </param>
		[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
		void RemovePreferenceObservers(int requestId);
		
		/// <summary>Member GetUITelemetryObserver </summary>
		/// <returns>A nsIUITelemetryObserver</returns>
		[return: MarshalAs(UnmanagedType.Interface)]
		[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
		nsIUITelemetryObserver GetUITelemetryObserver();
	}
	
	/// <summary>nsIAndroidViewport </summary>
	[ComImport()]
	[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
	[Guid("92ae801d-da9c-4a24-b2b6-344c4af7008b")]
	public interface nsIAndroidViewport
	{
		
		/// <summary>Member GetXAttribute </summary>
		/// <returns>A System.Single</returns>
		[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
		float GetXAttribute();
		
		/// <summary>Member GetYAttribute </summary>
		/// <returns>A System.Single</returns>
		[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
		float GetYAttribute();
		
		/// <summary>Member GetWidthAttribute </summary>
		/// <returns>A System.Int32</returns>
		[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
		int GetWidthAttribute();
		
		/// <summary>Member GetHeightAttribute </summary>
		/// <returns>A System.Int32</returns>
		[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
		int GetHeightAttribute();
		
		/// <summary>Member GetPageLeftAttribute </summary>
		/// <returns>A System.Single</returns>
		[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
		float GetPageLeftAttribute();
		
		/// <summary>Member GetPageTopAttribute </summary>
		/// <returns>A System.Single</returns>
		[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
		float GetPageTopAttribute();
		
		/// <summary>Member GetPageRightAttribute </summary>
		/// <returns>A System.Single</returns>
		[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
		float GetPageRightAttribute();
		
		/// <summary>Member GetPageBottomAttribute </summary>
		/// <returns>A System.Single</returns>
		[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
		float GetPageBottomAttribute();
		
		/// <summary>Member GetCssPageLeftAttribute </summary>
		/// <returns>A System.Single</returns>
		[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
		float GetCssPageLeftAttribute();
		
		/// <summary>Member GetCssPageTopAttribute </summary>
		/// <returns>A System.Single</returns>
		[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
		float GetCssPageTopAttribute();
		
		/// <summary>Member GetCssPageRightAttribute </summary>
		/// <returns>A System.Single</returns>
		[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
		float GetCssPageRightAttribute();
		
		/// <summary>Member GetCssPageBottomAttribute </summary>
		/// <returns>A System.Single</returns>
		[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
		float GetCssPageBottomAttribute();
		
		/// <summary>Member GetZoomAttribute </summary>
		/// <returns>A System.Single</returns>
		[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
		float GetZoomAttribute();
	}
	
	/// <summary>nsIAndroidDisplayport </summary>
	[ComImport()]
	[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
	[Guid("e1bfbc07-dbae-409d-a5b5-ef57522c1f15")]
	public interface nsIAndroidDisplayport
	{
		
		/// <summary>Member GetLeftAttribute </summary>
		/// <returns>A System.Single</returns>
		[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
		float GetLeftAttribute();
		
		/// <summary>Member SetLeftAttribute </summary>
		/// <param name='aLeft'> </param>
		[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
		void SetLeftAttribute(float aLeft);
		
		/// <summary>Member GetTopAttribute </summary>
		/// <returns>A System.Single</returns>
		[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
		float GetTopAttribute();
		
		/// <summary>Member SetTopAttribute </summary>
		/// <param name='aTop'> </param>
		[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
		void SetTopAttribute(float aTop);
		
		/// <summary>Member GetRightAttribute </summary>
		/// <returns>A System.Single</returns>
		[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
		float GetRightAttribute();
		
		/// <summary>Member SetRightAttribute </summary>
		/// <param name='aRight'> </param>
		[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
		void SetRightAttribute(float aRight);
		
		/// <summary>Member GetBottomAttribute </summary>
		/// <returns>A System.Single</returns>
		[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
		float GetBottomAttribute();
		
		/// <summary>Member SetBottomAttribute </summary>
		/// <param name='aBottom'> </param>
		[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
		void SetBottomAttribute(float aBottom);
		
		/// <summary>Member GetResolutionAttribute </summary>
		/// <returns>A System.Single</returns>
		[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
		float GetResolutionAttribute();
		
		/// <summary>Member SetResolutionAttribute </summary>
		/// <param name='aResolution'> </param>
		[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
		void SetResolutionAttribute(float aResolution);
	}
	
	/// <summary>nsIAndroidBridge </summary>
	[ComImport()]
	[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
	[Guid("1beb70d3-70f3-4742-98cc-a3d301b26c0c")]
	public interface nsIAndroidBridge
	{
		
		/// <summary>Member HandleGeckoMessage </summary>
		/// <param name='message'> </param>
		/// <param name='jsContext'> </param>
		[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
		void HandleGeckoMessage(ref Gecko.JsVal message, System.IntPtr jsContext);
		
		/// <summary>Member GetBrowserAppAttribute </summary>
		/// <returns>A nsIAndroidBrowserApp</returns>
		[return: MarshalAs(UnmanagedType.Interface)]
		[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
		nsIAndroidBrowserApp GetBrowserAppAttribute();
		
		/// <summary>Member SetBrowserAppAttribute </summary>
		/// <param name='aBrowserApp'> </param>
		[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
		void SetBrowserAppAttribute([MarshalAs(UnmanagedType.Interface)] nsIAndroidBrowserApp aBrowserApp);
		
		/// <summary>Member GetDisplayPort </summary>
		/// <param name='aPageSizeUpdate'> </param>
		/// <param name='isBrowserContentDisplayed'> </param>
		/// <param name='tabId'> </param>
		/// <param name='metrics'> </param>
		/// <returns>A nsIAndroidDisplayport</returns>
		[return: MarshalAs(UnmanagedType.Interface)]
		[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
		nsIAndroidDisplayport GetDisplayPort([MarshalAs(UnmanagedType.U1)] bool aPageSizeUpdate, [MarshalAs(UnmanagedType.U1)] bool isBrowserContentDisplayed, int tabId, [MarshalAs(UnmanagedType.Interface)] nsIAndroidViewport metrics);
		
		/// <summary>Member ContentDocumentChanged </summary>
		[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
		void ContentDocumentChanged();
		
		/// <summary>Member IsContentDocumentDisplayed </summary>
		/// <returns>A System.Boolean</returns>
		[return: MarshalAs(UnmanagedType.U1)]
		[MethodImpl(MethodImplOptions.InternalCall, MethodCodeType=MethodCodeType.Runtime)]
		bool IsContentDocumentDisplayed();
	}
}
